// Licensed to Elasticsearch B.V under one or more agreements.
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
// See the LICENSE file in the project root for more information.
//
// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// ------------------------------------------------
//
// This file is automatically generated.
// Please do not edit these files manually.
//
// ------------------------------------------------

#nullable restore

using System;
using System.Linq;
using Elastic.Clients.Elasticsearch.Serialization;

namespace Elastic.Clients.Elasticsearch.Ingest;

public partial class IngestNamespacedClient : Elastic.Clients.Elasticsearch.NamespacedClientProxy
{
	/// <summary>
	/// <para>
	/// Initializes a new instance of the <see cref="Elastic.Clients.Elasticsearch.Ingest.IngestNamespacedClient"/> class for mocking.
	/// </para>
	/// </summary>
	protected IngestNamespacedClient() : base()
	{
	}

	internal IngestNamespacedClient(Elastic.Clients.Elasticsearch.ElasticsearchClient client) : base(client)
	{
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse DeleteGeoipDatabase(Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse DeleteGeoipDatabase(Elastic.Clients.Elasticsearch.Ids id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse DeleteGeoipDatabase(Elastic.Clients.Elasticsearch.Ids id, System.Action<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse> DeleteGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse> DeleteGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ids id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse> DeleteGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ids id, System.Action<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse DeleteIpLocationDatabase(Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse DeleteIpLocationDatabase(Elastic.Clients.Elasticsearch.Ids id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse DeleteIpLocationDatabase(Elastic.Clients.Elasticsearch.Ids id, System.Action<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse> DeleteIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse> DeleteIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ids id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse> DeleteIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ids id, System.Action<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.DeleteIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse DeletePipeline(Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse DeletePipeline(Elastic.Clients.Elasticsearch.Id id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse DeletePipeline(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse> DeletePipelineAsync(Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse> DeletePipelineAsync(Elastic.Clients.Elasticsearch.Id id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse> DeletePipelineAsync(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequest, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineResponse, Elastic.Clients.Elasticsearch.Ingest.DeletePipelineRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse GeoIpStats(Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse GeoIpStats()
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse GeoIpStats(System.Action<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse> GeoIpStatsAsync(Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse> GeoIpStatsAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse> GeoIpStatsAsync(System.Action<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequest, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsResponse, Elastic.Clients.Elasticsearch.Ingest.GeoIpStatsRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse GetGeoipDatabase(Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse GetGeoipDatabase()
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse GetGeoipDatabase(System.Action<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse GetGeoipDatabase(Elastic.Clients.Elasticsearch.Ids? id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse GetGeoipDatabase(Elastic.Clients.Elasticsearch.Ids? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse> GetGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse> GetGeoipDatabaseAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse> GetGeoipDatabaseAsync(System.Action<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse> GetGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ids? id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse> GetGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ids? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse GetIpLocationDatabase(Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse GetIpLocationDatabase()
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse GetIpLocationDatabase(System.Action<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse GetIpLocationDatabase(Elastic.Clients.Elasticsearch.Ids? id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse GetIpLocationDatabase(Elastic.Clients.Elasticsearch.Ids? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse> GetIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse> GetIpLocationDatabaseAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse> GetIpLocationDatabaseAsync(System.Action<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse> GetIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ids? id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse> GetIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ids? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.GetIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse GetPipeline(Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse GetPipeline()
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse GetPipeline(System.Action<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse GetPipeline(Elastic.Clients.Elasticsearch.Id? id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse GetPipeline(Elastic.Clients.Elasticsearch.Id? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse> GetPipelineAsync(Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse> GetPipelineAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse> GetPipelineAsync(System.Action<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse> GetPipelineAsync(Elastic.Clients.Elasticsearch.Id? id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse> GetPipelineAsync(Elastic.Clients.Elasticsearch.Id? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.GetPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.GetPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse ProcessorGrok(Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse ProcessorGrok()
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse ProcessorGrok(System.Action<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse> ProcessorGrokAsync(Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse> ProcessorGrokAsync(System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestDescriptor();
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse> ProcessorGrokAsync(System.Action<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequest, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokResponse, Elastic.Clients.Elasticsearch.Ingest.ProcessorGrokRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse PutGeoipDatabase(Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse PutGeoipDatabase(Elastic.Clients.Elasticsearch.Id id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse PutGeoipDatabase(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse> PutGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse> PutGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Id id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse> PutGeoipDatabaseAsync(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutGeoipDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse PutIpLocationDatabase(Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse PutIpLocationDatabase(Elastic.Clients.Elasticsearch.Id id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse PutIpLocationDatabase(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse> PutIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse> PutIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Id id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse> PutIpLocationDatabaseAsync(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequest, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseResponse, Elastic.Clients.Elasticsearch.Ingest.PutIpLocationDatabaseRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse PutPipeline(Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse PutPipeline(Elastic.Clients.Elasticsearch.Id id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse PutPipeline(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse PutPipeline<TDocument>(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor<TDocument>(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse> PutPipelineAsync(Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse> PutPipelineAsync(Elastic.Clients.Elasticsearch.Id id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse> PutPipelineAsync(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse> PutPipelineAsync<TDocument>(Elastic.Clients.Elasticsearch.Id id, System.Action<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestDescriptor<TDocument>(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequest, Elastic.Clients.Elasticsearch.Ingest.PutPipelineResponse, Elastic.Clients.Elasticsearch.Ingest.PutPipelineRequestParameters>(request, cancellationToken);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.SimulateResponse Simulate(Elastic.Clients.Elasticsearch.Ingest.SimulateRequest request)
	{
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.SimulateResponse Simulate(System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.SimulateResponse Simulate(Elastic.Clients.Elasticsearch.Id? id)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.SimulateResponse Simulate(Elastic.Clients.Elasticsearch.Id? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.SimulateResponse Simulate<TDocument>(System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request);
	}

	public virtual Elastic.Clients.Elasticsearch.Ingest.SimulateResponse Simulate<TDocument>(Elastic.Clients.Elasticsearch.Id? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>> action)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequest<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.SimulateResponse> SimulateAsync(Elastic.Clients.Elasticsearch.Ingest.SimulateRequest request, System.Threading.CancellationToken cancellationToken = default)
	{
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.SimulateResponse> SimulateAsync(System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.SimulateResponse> SimulateAsync(Elastic.Clients.Elasticsearch.Id? id, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor(id);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.SimulateResponse> SimulateAsync(Elastic.Clients.Elasticsearch.Id? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.SimulateResponse> SimulateAsync<TDocument>(System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>();
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request, cancellationToken);
	}

	public virtual System.Threading.Tasks.Task<Elastic.Clients.Elasticsearch.Ingest.SimulateResponse> SimulateAsync<TDocument>(Elastic.Clients.Elasticsearch.Id? id, System.Action<Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>> action, System.Threading.CancellationToken cancellationToken = default)
	{
		var builder = new Elastic.Clients.Elasticsearch.Ingest.SimulateRequestDescriptor<TDocument>(id);
		action.Invoke(builder);
		var request = builder.Instance;
		request.BeforeRequest();
		return DoRequestAsync<Elastic.Clients.Elasticsearch.Ingest.SimulateRequest, Elastic.Clients.Elasticsearch.Ingest.SimulateResponse, Elastic.Clients.Elasticsearch.Ingest.SimulateRequestParameters>(request, cancellationToken);
	}
}